草庐IT

javascript oop、instanceof 和基类

全部标签

c# - 使用 XmlIgnoreAttribute 忽略基类属性

我有一个抽象基类,我在其中添加了一些虚拟属性。我想要的是,在我的派生类中,指定在序列化(和反序列化过程)期间忽略特定的基类属性。如下所示,BaseClass类中的Value属性被声明为virtual属性,并且在DerivedClass中>-class,使用overrides-关键字,我选择覆盖基类的ppty,然后将XmlIgnoreAttribute-Attribute放在它上面。但是,当我测试代码时,我仍然发现Valueppty包含在为我的派生类实例生成的XML中。Definitionppty也会发生同样的事情,即使我使用new关键字将它隐藏在Derived类中,它也会呈现,然后也将

c# - 从基类派生的类的 XmlSerializer 构造函数错误

以下代码指定了从基类“TestBase”派生的类型“MyBase64Binary”usingSystem;usingSystem.Xml.Serialization;usingSystem.Collections;usingSystem.Xml.Schema;usingSystem.ComponentModel;namespaceTest{publicclassTestBase{publicTestBase(){}}[XmlType(TypeName="base64Binary"),Serializable]publicpartialclassMyBase64Binary:TestBa

如何将事件从QML信号处理程序传递到基类

我有TextField我想稍微改变行为的对象onTabPressed。我在用着Keys为此附加对象:Keys.onTabPressed:{model.item.value=text;}但是后来我失去了它的典型行为,无法在TextFields。在qtwidgets中,我会用类似returnQTextField::onTabPressed(event).是否有任何方法可以实现类似的事件传播到基类事件处理程序?换句话说,是否可以从派生类的同一函数中调用base类函数?看答案奇怪的是,我以为我已经检查过。解决方案是防止事件被接受的,然后自动传播,如图所示https://forum.qt.io/topi

c# - 当我们创建其继承类的新对象时,是否创建了基类的对象?

在C#中,当我们创建一个继承类对象时,它是否也创建了一个基类对象?因为它从子类构造函数调用基类构造函数而感到困惑。Willcallingabaseclassconstructorfromchildclassconstructor,createabaseclassobject? 最佳答案 只创建了一个对象,但它有两个“层”——基类属性和行为以及继承类属性和行为。所以在某种意义上答案是“是的,创建了一个基类对象”(该对象与任何其他基类对象具有相同的属性和行为)但它与继承类是同一对象所以说“否”也是正确的,基础对象也未创建。”。关键区别在

c# - 为什么 GetProperties 两次列出 protected 属性(在通用基类中声明)?

当我声明以下简单类时:classClass1{protectedvirtualTProp1{get;set;}protectedvirtualstringProp2{get;set;}}classClass2:Class1{protectedoverridestringProp1{get;set;}protectedoverridestringProp2{get;set;}}现在我使用反射来获取Class2的属性,如下所示:varhProperties=typeof(Class2).GetProperties(BindingFlags.NonPublic|BindingFlags.In

c# - new() 的通用类型约束和抽象基类

这里我们有一个简单的类层次结构,并且将泛型与typeconstraint一起使用new()的publicabstractclassBase{}publicclassDerived:Base{}publicclassTestClass{privatevoidDoSomething(Targ)whereT:new(){}publicvoidTestMethod(){Derivedd1=newDerived();DoSomething(d1);//compilesBased2=newDerived();DoSomething(d2);//compileerror}}代码在指示的行编译失败,错

c# - 在数据库中存储具有公共(public)基类的对象

假设我有一个共同的基类/接口(interface)interfaceICommand{voidExecute();}然后有一些命令继承自这个接口(interface)。classCommandA:ICommand{intx;inty;publicCommandA(intx,inty){...}publicvoidExecute(){...}}classCommandB:ICommand{stringname;publicCommandB(stringname){...}publicvoidExecute(){...}}现在我想用一种通用方法将这些命令存储在数据库中,然后将它们全部从数据

c# - 转换为基类,并调用其虚方法导致计算器异常

考虑这段代码:publicclassPerson{publicvirtualvoidUpdateLastLogin(){//businessoflastloginhere}}publicclassStudent:Person{publicoverridevoidUpdateLastLogin(){//loggingsomethingspecifictoperson((Person)this).UpdatelastLogin();}}为什么上面的代码会抛出STACKOVERFLOW异常?但这不是:publicclassPerson{publicvirtualvoidUpdateLastL

c# - 基类中的构造函数依赖注入(inject)

我正在使用EntityFramework构建一个存储库基类,其中所有实体存储库都将继承。我想使用Ninject使用依赖注入(inject)将DatabaseContext注入(inject)基类。我认为构造函数注入(inject)是正确的方法,但是在派生类中使用构造函数注入(inject)来执行此操作我将必须将参数传递给基类中的构造函数,但我不希望这样做。因此,Setter注入(inject)更合适?这是我的代码:publicabstractclassBaseRepository:IDisposablewhereTEntity:class{privatereadonlyDatabase

c# - 在 Json.NET 序列化中忽略基类属性

我有以下类结构:[JsonObject]publicclassPolygon:IEnumerable{publicListVertices{get;set;}publicAxisAlignedRectangleEnvelope{get;set;}}publicclassAxisAlignedRectangle:Polygon{publicdoubleLeft{get;set;}...}我正在序列化Polygon类,但是当我这样做时,我得到一个JsonSerializationException,以及消息Selfreferencingloopdetectedforproperty'Env